package edu.yctc.origin.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import edu.yctc.origin.entity.BookDO;

/**
 * bookDAO接口
 * 
 * @author 赵宜珺
 *
 */
@Mapper
public interface BookDAO {

    /**
     * 插入
     * 
     * @param bookDO
     */
    public void insert(BookDO bookDO);

    /**
     * 通过id返回bookDO
     * 
     * @param id
     * @return
     */
    public BookDO getBookDOById(long id);

    /**
     * 更新
     * 
     * @param bookDO
     */
    public void update(BookDO bookDO);

    /**
     * 删除
     * 
     * @param id
     */
    public void deleteById(long id);

    /**
     * 通过书名返回bookDO
     * 
     * @param name
     * @return
     */
    public List<BookDO> getBookDOsByName(String name);

    /**
     * 通过编号返回bookDO
     * 
     * @param number
     * @return
     */
    public BookDO getBookDOByNumber(String number);

    /**
     * 通过出版社id返回bookDO集
     * 
     * @param pressId
     * @return
     */
    public List<BookDO> getBookDOsByPressId(long pressId);

    /**
     * 通过作者id返回bookDO
     * 
     * @param authorId
     * @return
     */
    public List<BookDO> getBookDOsByAuthorId(long authorId);

    /**
     * 通过书名、书编、出版社id和作者id查找书
     * 
     * @param name
     * @param number
     * @param pressId
     * @param authorId
     * @return
     */
    public BookDO getBookDOByNameAndNumberAndPressIdAndAuthorId(String name, String number, long pressId,
        long authorId);

}
